package com.muyan.sys.webscoket.protocol;

import cn.hutool.core.date.DateUtil;
import lombok.Data;

import java.util.Date;

/**
 * WebSocket 消息协议
 */
@Data
public class MessageProto {
    /**
     * 消息类型
     */
    public enum MessageType {
        CONNECT(1),        // 连接消息
        CHAT(2),          // 聊天消息
        GROUP_CHAT(3),    // 群聊消息
        GROUP_LIST(4),    // 群组列表更新
        HEARTBEAT(5),     // 心跳消息
        DISCONNECT(6),    // 断开连接
        USER_STATUS(7),   // 用户状态更新
        UNREADGROUP(8);   // 用户状态更新

        private final int value;

        MessageType(int value) {
            this.value = value;
        }

        public int getValue() {
            return value;
        }
    }

    private MessageType type;           // 消息类型
    private String fromUserId;          // 发送者ID
    private String fromUserHead;        // 发送者头像
    private String fromNickname;        // 发送者昵称
    private String toUserId;            // 接收者ID
    private String groupId;             // 群组ID
    private String content;             // 消息内容

    private Long timestamp;             // 时间戳
    private String dateTime;             // 时间戳
    private Date expireTime;            // 过期时间

    public String getDataTime() {
        if(timestamp!=null){
            DateUtil.format(new Date(timestamp), "yyyy-MM-dd HH:mm:ss");
        }
        return dateTime;
    }
}